package com.sugon.service;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * @author ： YuXD
 * @description： 基础Service，定义一些公共行为
 * @date ： 2020-09-13 上午 9:04
 * @version: 1.0
 */
public interface IBaseService {

    /**
     * 生成业务记录唯一编码
     * 所有需要唯一编码的记录都需要实现该方法
     *
     * @return
     */
    default String generateUniqueCode(Object object) {
        return null;
    }

    /**
     * 生成业务记录唯一编码
     * 所有需要唯一编码的记录都需要实现该方法
     *
     * @return
     */
    default String generateUniqueCode() {
        return generateUniqueCode(null);
    }

    /**
     * 导出业务数据,所有需要导出的业务Service都需要实现该方法
     *
     * @param params   业务参数
     * @param response 响应对象
     * @return
     */
    default void export(Map<String, Object> params, HttpServletResponse response) {
        // 什么都不做，由业务类提供具体实现
    }

    /**
     * 数据初始化导入
     *
     * @param file
     * @return
     */
    default int imports(MultipartFile file){
        return 0;
    }

    /**
     * 数据初始化导入
     * 返回导入结果
     *
     * @param file
     * @return
     */
    default String imports2(MultipartFile file){
        return "";
    }

}
